package org.zpmis.common.constant;


public class UserConstants {

    /**
     * 用户id为key，value是用户登录token信息 ，退出或者强制登出的时候会同步删除
     *小程序登录
     */
    public static final String APPLETS_USER_INFO_REDIS_KEY = "applets:login:user:info:%s";


    /**
     * 用户token作为key， value 是用户登录信息 ，退出或者强制登出的时候会同步删除
     * 小程序登录
     */
    public static final String APPLETS_USER_TOKEN_REDIS_KEY = "applets:login:user:token:%s";

    /**
     * 登录用户信息 ，退出的时候不会同步删除，只有在修改用户权限的时候强制登出会删除
     * 小程序登录
     */
    public static final String APPLETS_USER_LOGIN_DETAIL_KEY = "applets:login:user:detail:%s";

    /**
     * 用户id为key，value是用户登录token信息 ，退出或者强制登出的时候会同步删除
     * admin 登录
     */
    public static final String ADMIN_USER_INFO_REDIS_KEY = "admin:login:user:info:%s";


    /**
     * 用户token作为key， value 是用户登录信息 ，退出或者强制登出的时候会同步删除
     * admin 登录
     */
    public static final String ADMIN_USER_TOKEN_REDIS_KEY = "admin:login:user:token:%s";

    /**
     * 登录用户信息 ，退出的时候不会同步删除，只有在修改用户权限的时候强制登出会删除
     * admin 登录
     */
    public static final String ADMIN_USER_LOGIN_DETAIL_KEY = "admin:login:user:detail:%s";

    /**
     * 系统编号分布式锁前缀
     */
    public static final String SEQUENCE_LOCK_PREFIX = "sequence:%s:%s";
    /**
     * 超级用户 root
     */
    public static final String ROOT = "root";

    /**
     * token签发者 用来区分小程序登录 还是后台登录
     */
    public static final String ADMIN_ISSUER = "zpmis_admin";

    /**
     * token签发者 用来区分小程序登录 还是后台登录
     */
    public static final String APPLETS_ISSUER = "zpmis_applets";

    public static String getUserInfoRedisKey(String issuer){
        if(ADMIN_ISSUER.equals(issuer)){
            return ADMIN_USER_INFO_REDIS_KEY;
        }else if(APPLETS_ISSUER.equals(issuer)){
            return APPLETS_USER_INFO_REDIS_KEY;
        }else{
            return null;
        }
    }

    /**
     * 根据签名证书获取对应的redisKey
     * @param issuer
     * @return
     */
    public static String getUserTokenRedisKey(String issuer){
        if(ADMIN_ISSUER.equals(issuer)){
            return ADMIN_USER_TOKEN_REDIS_KEY;
        }else if(APPLETS_ISSUER.equals(issuer)){
            return APPLETS_USER_TOKEN_REDIS_KEY;
        }else{
            return null;
        }
    }

    public static String getUserLoginDetailKey(String issuer){
        if(ADMIN_ISSUER.equals(issuer)){
            return ADMIN_USER_LOGIN_DETAIL_KEY;
        }else if(APPLETS_ISSUER.equals(issuer)){
            return APPLETS_USER_LOGIN_DETAIL_KEY;
        }else{
            return null;
        }
    }
}
